home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
EDITORS
/
MEMACS
/
Cmd
/
Opage
< prev
next >
Wrap
Text File
|
1991-06-15
|
6KB
|
248 lines
; OPAGE.CMD: COBOL language MENU Page
; for MicroEMACS 3.10 and above
; (C)opyright 1988 by Daniel Lawrence
;
; set up the "clean" procedure
store-procedure clean
delete-buffer "[Macro 10]"
delete-buffer "[Macro 11]"
delete-buffer "[Macro 12]"
delete-buffer "[Macro 13]"
delete-buffer "[Macro 14]"
delete-buffer "[Macro 15]"
delete-buffer "[Macro 16]"
delete-buffer "[Macro 17]"
delete-buffer "[Macro 18]"
delete-buffer "[Macro 19]"
bind-to-key handle-tab ^I
delete-buffer "[cobol-tab]"
set $cmode %oldmode
set $gmode %oldgmode
0 handle-tab
!endm
; make sure the function key window is up
set %rcfkeys FALSE
execute-macro-1
write-message "Loading..."
; Write out the page instructions
save-window
1 next-window
beginning-of-file
set $curcol 25
overwrite-string " F1 Make IDENT division F2 UPPERcase buffer "
next-line
set $curcol 25
overwrite-string " F3 Make ENVIR division F4 while "
next-line
set $curcol 25
overwrite-string " F5 REPEAT F6 switch "
next-line
set $curcol 18
overwrite-string "COBL"
set $curcol 25
overwrite-string " F7 VALUE F8 Reserved words UP "
next-line
set $curcol 25
overwrite-string " F9 chk comment matching F10 Shell to DOS "
unmark-buffer
beginning-of-file
!force restore-window
update-screen
;
10 store-macro
beginning-of-file
set %rctemp @"Program Name: "
insert-string " IDENTIFICATION DIVISION.~n"
insert-string &cat &cat " PROGRAM-ID. " %rctemp ".~n"
update-screen
set %rctemp @"Author: "
insert-string &cat &cat " AUTHOR. " %rctemp ".~n"
insert-string &cat &cat " DATE-WRITTEN. " $time ".~n"
insert-string " DATE-COMPILED.~n"
insert-string " REMARKS.~n~n"
!endm
bind-to-key execute-macro-10 S-FN1
; Function
11 store-macro
9 set-mark
beginning-of-file
set-mark
end-of-file
case-region-upper
9 goto-mark
!endm
bind-to-key execute-macro-11 S-FN2
;
12 store-macro
insert-string " ENVIRONMENT DIVISION.~n"
insert-string " CONFIGURATION SECTION.~n"
insert-string " SOURCE-COMPUTER. IBM-3090.~n"
insert-string " OBJECT-COMPUTER. IBM-3090.~n"
insert-string " SPECIAL-NAMES.~n"
insert-string " INPUT-OUTPUT SECTION.~n"
insert-string " FILE-CONTROL.~n"
!endm
bind-to-key execute-macro-12 S-FN3
;
13 store-macro
set %cond @"Condition Expr: "
;set $debug TRUE
insert-string &cat &cat "while (" %cond ") {"
newline-and-indent
newline-and-indent
insert-string &cat &cat "} /* while (" %cond ") */"
1 previous-line
end-of-line
handle-tab
!endm
bind-to-key execute-macro-13 S-FN4
14 store-macro
set %cond @"Condition Expr: "
;set $debug TRUE
set %curcol $curcol
insert-string &cat &cat "REPEAT~n"
%curcol insert-string " "
set $curcol %curcol
!if &EQUal %curcol 3
insert-string &cat &cat "UNTIL " %cond ";"
!else
insert-string &cat "UNTIL " %cond
!endif
beginning-of-line
open-line
%curcol insert-string " "
insert-string " "
!force set $debug FALSE
!endm
bind-to-key execute-macro-14 S-FN5
15 store-macro
set %expr @"Switch Expr: "
;set $debug TRUE
set %curcol $curcol
insert-string &cat &cat "switch (" %expr ") {"
newline-and-indent
insert-string "}"
previous-line
end-of-line
newline-and-indent
handle-tab
insert-string "case "
!force set $debug FALSE
!endm
bind-to-key execute-macro-15 S-FN6
16 store-macro
; set $debug TRUE
set %curcol $curcol
set %value @"Value: "
insert-string &cat %value " : {~n"
%curcol insert-string " "
insert-string " };~n"
%curcol insert-string " "
previous-line
beginning-of-line
open-line
%curcol insert-string " "
insert-string " "
!force set $debug FALSE
!endm
bind-to-key execute-macro-16 S-FN7
17 store-macro
; set $debug TRUE
set %curcol $curcol
;save-file
set-mark
beginning-of-file
write-message "[Replacing 'begin']
replace-string "begin" "BEGIN"
beginning-of-file
write-message "[Replacing 'end']
replace-string "end" "END"
beginning-of-file
write-message "[Replacing ' if']
replace-string " if" " IF"
beginning-of-file
write-message "[Replacing ' else']
replace-string " else" " ELSE"
beginning-of-file
write-message "[Replacing ' repeat']
replace-string " repeat" " REPEAT"
beginning-of-file
write-message "[Replacing ' while']
replace-string " while" " WHILE"
exchange-point-and-mark
!force set $debug FALSE
!endm
bind-to-key execute-macro-17 S-FN8
18 store-macro
beginning-of-file
source findcom.cmd
!endm
bind-to-key execute-macro-18 S-FN9
19 store-macro
i-shell
!endm
bind-to-key execute-macro-19 S-FN0
; This macro assumes we are on an 01 entry line and
; moves all the datanames to the DATANAMES buffer
store-procedure getrecnames
set %orbuf $cbufname
!force delete-buffer DATANAMES
9 set-mark
*grn beginning-of-line
next-line
8 forward-character
!if ¬ &equ $curchar 32
9 goto-mark
write-message "[data names recorded]"
!return
!endif
!endm
; modify the tabbing behavior to match COBOL
store-procedure cobol-tab
!if &less $curcol 7
set %rctmp &sub 7 $curcol
!else
set %rctmp &sub &add 3 &band 252 &add 1 $curcol $curcol
!endif
%rctmp insert-space
%rctmp forward-character
!endm
macro-to-key cobol-tab ^I
; Set up CMODE
set %oldmode $cmode
set %oldgmode $gmode
add-mode CMODE
add-global-mode CMODE
4 handle-tab
write-message "[COBOL MENU page loaded]"